<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/10/8/008
 * Time: 17:23
 */

namespace app\index\controller;
use think\Controller;
use think\Db;
use app\common\redis\RedisPackage;
use think\Request;
class Common extends Controller
{
    protected $id; //当前登录后台的居间id
    protected $bh; //居间编号
    protected $gt_jujian_id; //顶级居间id
    protected $par_id; //上级id
    protected $sj_xulie; //所有上级id（数组形式)
    protected $isCZY = false; //是否是操作员
    protected $jujian; //整个jujian登录的用户数组（可直接调用）
    protected $xingming; //姓名
    protected $is_Dingji = false; //当前登录账户是不是等级代理
    public function _initialize()
    {
        header('Access-Control-Allow-Origin:*');
        $token = input('token','');
        if(strlen($token) <= 32){
            returnError('非法登录请求！','',-1);
        }
        $id = substr($token,32);
        if(cache($id) != $token){
            returnError('登录已过期！','',-1);
        }
        $jujian = db('jujian')->where('id',$id)->find();
        if(!$jujian){
            returnError('登录居间不存在！','',-1);
        }
        $this->id = $jujian['id'];
        $this->bh = $jujian['bh'];
        $this->gt_jujian_id = $jujian['gt_jujian_id'];
        $this->par_id = $jujian['par_id'];
        $this->sj_xulie = array_filter(explode(',',$jujian['sj_xulie']));
        $this->jujian = $jujian;
        $this->xingming = $jujian['xingming'];
        if(strtoupper(substr($jujian['bh'],0,3)) == 'CZY'){
            $this->isCZY = true;
            $par = db('jujian')->where('id',$jujian['par_id'])->find();
            if($par['lb_id'] == 1){
                $this->is_Dingji = true;
            }
        }
        if($jujian['lb_id'] == 1){
            $this->is_Dingji = true;
        }
        if(!$this->is_Dingji) {
            $controller = request()->controller();
            if (strtolower($controller) == 'systemmanagement' || strtolower($controller) == "essentialdata") returnError("暂无此操作权限");
        }
    }


    /**
     * 获取代理关系
     * @param null $sj_xulie
     * @return string ,10,88,5,1
     */
    public function get_dl_name($sj_xulie=null){
        $id = $this->id;
        if($this->isCZY){
            $id = $this->jujian['par_id'];
        }else {
            $jujian = $this->jujian;
            if ($sj_xulie == $jujian['sj_xulie']) {
                return '';
            }
        }
        $id = ",$id,";
        $weizi = strpos($sj_xulie,$id) + strlen($id);
        $sj_xulie = substr($sj_xulie,0,$weizi);
        if(cache($sj_xulie)){
            return cache($sj_xulie);
        }
        $result = [];
        $res = '';
        if($sj_xulie){
            $guanxi = array_filter(explode(",",trim($sj_xulie)));
            foreach($guanxi as $k=>$v){
                $result[$k]= db('jujian')->where('id',$v)->value('xingming');
            }
            $result = array_reverse($result);
            $res=implode('->',$result);
        }
        cache($sj_xulie,$res);
        return $res;
    }

    /**
     * 日志类
     *id 下列的标志号
     * arr（数组） 键是标题  值是内容
     * redis(数组) 键是标题  值是内容
     *
    1	存款
    2	取款
    3	建仓
    4	平仓
    5	撤单
    6	跟单添加
    7	跟单修改
    8	跟单撤销
    9	修改密码
    10	全部平仓
    11	全部撤单
    12	取消全部跟单
    13	市价反手
    14	货币转换
    15	设置止盈止损
    16	取消止盈止损
    17	存款
    18	取款
    19	取款申请
    20	出金审核通过
    21	出金审核驳回
    22	用户审核通过
    23	用户审核驳回
    24	代理审核通过
    25	代理审核驳回
    26	编辑用户
    27	编辑代理
    28	添加用户
    29	添加代理
    30	添加操作员
    31	编辑操作员
    32	发送消息
    33	添加实盘账户
    34	编辑实盘账户
    35	添加路由组
    36	编辑路由组
    37	添加路由
    38	编辑路由
    39	编辑品种
    40	添加手续费模板
    41	编辑手续费模板
    42	添加成本模板
    43	编辑成本模板
    44	添加保证金模板
    45	编辑保证鑫模板
    46	添加风控模板
    47	编辑风控模板
    48	添加风控项目
    49	删除风控项目
    50	添加汇率模板
    51	编辑汇率模板
    52	添加权限模板
    53	编辑权限模板
    54	删除消息公告
    55	修改密码
    58	删除用户
    59	删除代理
    60	添加合约品种
    61	修改合约品种
    62	添加合约
    63	修改合约
    64	添加交易时间
    65	修改交易时间
    66	删除合约
    67	删除交易时间
    68	添加休市
    69	删除休市
    70	修改密码
    101	恢复代理
    102	添加手续费项目
    103	编辑手续费项目
    104	添加成本项目
    105	编辑成本项目
    106	调整基本账户
    107	编辑返佣类别
    108	修改用户密码
    109	修改代理或操作员密码
    110	调整有效佣金帐户
    111	删除代理
    112	删除用户
    113	用户转挂
    114	代理转挂
    115	货币转换
    116	添加保证金项目
    117	编辑保证金项目
    118	添加汇率项目
    119	编辑汇率项目
    120	资金划拨
    121	资金调整
     */
    public function riZhi($id,$arr,$redis){
        $user_id = $this->id;
        $ip = request()->ip();
        $time = time();
        $id = db('operation_records')->insertGetId(['user_id'=>$user_id,'user_category'=>2,'ip'=>$ip,'operation_category'=>$id,'operation_time'=>$time]);
        foreach ($arr as $k=>$v){
            db('operation_records_detail')->insert(['detail_name'=>$k,'operation_value'=>$v,'par_id'=>$id]);
        }
        RedisPackage::getInstance();
        foreach ($redis as $key=>$value){
            RedisPackage::set($key,$value);
        }
    }


    /**
     * 以二维数组指定键，转化为一维数组
     * @param $array 二维数组
     * @param $key 指定键
     * @return array 新数组
     */
    public function getNewArray($array,$key){
        $newArray = [];
        foreach ($array as $k=>$v){
            $newArray[$v[$key]] = $v;
        }
        return $newArray;
    }


}